# -*- coding: utf-8 -*-
# @Author  : xinjunjie
# @Time    : 2023/1/26 16:47
# @Function:

###计算主线程的运行时间
import requests
import time
import functools
import threading
def runtime(func):#func要接收一个callable对象
    print("this is run time")
    @functools.wraps(func)  # 保留传递进来函数的元数据，将他的元数据赋值给inner
    def inner(*args,**kwargs):#所以把功能写在inner里就行
        start=time.time()
        result=func(*args,**kwargs)#要将原函数的返回值保存起来
        end=time.time()
        print(f"函数执行花了{end-start}s")
        return result
    return inner
def get_content(url, i):
    text = requests.get(url).content
    time.sleep(5-i)
    print("get content", i)
@runtime
def main():
    for i in range(5):
        # get_content("https://www.baidu.com")
        #创建多线程，有六个线程---一个主线程五个子线程
        #target--->指定传入的方法名字，要做什么
        #args--->指定方法需要传入的参数（元组类型）
        t = threading.Thread(target=get_content,args=("https://www.baidu.com", i))
        t.start()#启动线程-->自动的执行run方法
main()
